#ifndef HAL_GPIO_H
#define HAL_GPIO_H

#include "stm32f10x.h"
#include "dry_contact.h"

extern inline void Operate_Relay1(BitAction bitval);
extern inline void Operate_Relay2(BitAction bitval);
extern inline void Operate_Relay3(BitAction bitval);
extern inline void Operate_Relay4(BitAction bitval);
extern inline void Operate_Relay5(BitAction bitval);
extern inline void Operate_Relay6(BitAction bitval);
extern inline void Operate_Relay7(BitAction bitval);
extern inline void Operate_Relay8(BitAction bitval);
extern inline void Operate_Relay9(BitAction bitval);
extern inline void Operate_Relay10(BitAction bitval);
extern inline void Operate_Relay11(BitAction bitval);
extern inline void Operate_Relay12(BitAction bitval);
extern inline void Operate_Relay13(BitAction bitval);
extern inline void Operate_Relay14(BitAction bitval);
extern inline void Operate_Relay15(BitAction bitval);
extern inline void Operate_Relay16(BitAction bitval);

extern uint8_t get_Operate_Relay1_driver(void);
extern uint8_t get_Operate_Relay2_driver(void);
extern uint8_t get_Operate_Relay3_driver(void);
extern uint8_t get_Operate_Relay4_driver(void);
extern uint8_t get_Operate_Relay5_driver(void);
extern uint8_t get_Operate_Relay6_driver(void);
extern uint8_t get_Operate_Relay7_driver(void);
extern uint8_t get_Operate_Relay8_driver(void);
extern uint8_t get_Operate_Relay9_driver(void);
extern uint8_t get_Operate_Relay10_driver(void);
extern uint8_t get_Operate_Relay11_driver(void);
extern uint8_t get_Operate_Relay12_driver(void);
extern uint8_t get_Operate_Relay13_driver(void);
extern uint8_t get_Operate_Relay14_driver(void);
extern uint8_t get_Operate_Relay15_driver(void);
extern uint8_t get_Operate_Relay16_driver(void);

inline void Operate_P_Ctrl_Diode1(BitAction bitval);
inline void Operate_P_Ctrl_Diode2(BitAction bitval);
#endif
